Skill

উদাহরণ সহ Exception Handling

Java Technologies - সুইং (Swing) - Exception Handling এবং Debugging in Swing
196

Exception Handling একটি প্রক্রিয়া যেখানে কোডের চলমান অবস্থায় যেকোনো ধরনের ত্রুটি (error) বা ব্যতিক্রম (exception) হ্যান্ডেল করা হয়, যাতে প্রোগ্রাম ক্র্যাশ না হয় এবং ব্যবহারকারীকে একটি কার্যকরী বার্তা প্রদর্শন করা যায়। Swing এর মাধ্যমে ডেক্সটপ অ্যাপ্লিকেশন তৈরি করার সময় ব্যতিক্রম হ্যান্ডলিং খুবই গুরুত্বপূর্ণ, কারণ ইউজার ইন্টারফেস (UI) এ কোনো ত্রুটি ঘটলে অ্যাপ্লিকেশন বন্ধ হয়ে যেতে পারে।

Swing অ্যাপ্লিকেশন তৈরির সময় try-catch ব্লক ব্যবহার করা হয় ব্যতিক্রমগুলিকে ধরতে এবং সেগুলি কার্যকরভাবে পরিচালনা করতে। এই ব্যতিক্রমগুলির মধ্যে যেমন IOException, SQLException, NumberFormatException ইত্যাদি হতে পারে।


Exception Handling এর মূল ধারণা

  1. try: কোডের যে অংশে ব্যতিক্রম ঘটতে পারে, সেটি এখানে রাখা হয়।
  2. catch: যদি try ব্লকে কোনো ব্যতিক্রম ঘটে, তবে সেই ব্যতিক্রমটি এখান থেকে ধরা হয়।
  3. finally: এটি ঐচ্ছিক। যদি ব্যতিক্রম ঘটুক বা না ঘটুক, এটি সর্বশেষে এক্সিকিউট হয়। সাধারণত ক্লিনআপ বা রিসোর্স মুক্ত করার জন্য ব্যবহার করা হয়।

উদাহরণ: Swing অ্যাপ্লিকেশন এ Exception Handling

এখানে একটি Swing অ্যাপ্লিকেশন উদাহরণ দেওয়া হলো, যেখানে ব্যবহারকারী একটি সংখ্যার ইনপুট দেবে এবং সেই সংখ্যাটি গুণ (multiply) করা হবে। যদি ব্যবহারকারী কিছু ভুল ইনপুট দেয়, যেমন অক্ষর বা খালি ফিল্ড, তবে একটি ব্যতিক্রম (exception) ধরতে হবে এবং ব্যবহারকারীকে একটি ত্রুটি বার্তা (error message) দেখাতে হবে।

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class ExceptionHandlingExample {

    public static void main(String[] args) {
        // JFrame তৈরি
        JFrame frame = new JFrame("Exception Handling Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 200);

        // JTextField এবং JButton তৈরি
        JTextField inputField = new JTextField(10);
        JButton button = new JButton("Multiply by 2");

        // JLabel ত্রুটি বার্তা দেখানোর জন্য
        JLabel resultLabel = new JLabel("Result: ");
        JLabel errorLabel = new JLabel();

        // Button এ ActionListener যোগ করা
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    // ইউজার ইনপুট নিন এবং ইনপুটটি গুণ করুন
                    String inputText = inputField.getText();
                    int number = Integer.parseInt(inputText);  // NumberFormatException হতে পারে
                    int result = number * 2;
                    resultLabel.setText("Result: " + result);
                    errorLabel.setText("");  // কোনো ত্রুটি না থাকলে ত্রুটি মেসেজ পরিষ্কার করুন
                } catch (NumberFormatException ex) {
                    // যদি ইনপুটটি একটি সংখ্যা না হয়
                    errorLabel.setText("Error: Please enter a valid number.");
                }
            }
        });

        // Layout সেটআপ
        frame.setLayout(new FlowLayout());
        frame.add(new JLabel("Enter a number:"));
        frame.add(inputField);
        frame.add(button);
        frame.add(resultLabel);
        frame.add(errorLabel);

        // JFrame দৃশ্যমান করা
        frame.setVisible(true);
    }
}

কোড বিশ্লেষণ:

  1. JTextField এবং JButton তৈরি:
    • JTextField ইউজারের ইনপুট নেয়ার জন্য ব্যবহৃত হয় এবং JButton এর মাধ্যমে ইনপুটটিকে প্রসেস করা হবে।
  2. ActionListener:
    • button.addActionListener() এর মাধ্যমে আমরা ইউজারের ইনপুট গ্রহণ করি এবং তারপর তা প্রসেস করতে যাই। এখানে Integer.parseInt() মেথড ব্যবহার করা হয়েছে, যা একটি স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তরিত করে। তবে যদি ব্যবহারকারী অযথা কোনো অক্ষর ইনপুট দেয়, তখন NumberFormatException হতে পারে।
  3. Exception Handling:
    • try-catch ব্লকের মাধ্যমে আমরা NumberFormatException ধরছি, যদি ইনপুটটি সংখ্যায় রূপান্তর করা না যায়। এই ক্ষেত্রে, একটি ত্রুটি বার্তা ("Error: Please enter a valid number.") JLabel এ প্রদর্শিত হয়।
  4. JLabel for Result/Error:
    • JLabel ব্যবহার করা হয়েছে ফলাফল এবং ত্রুটি বার্তা প্রদর্শনের জন্য।

Exception Handling এর মধ্যে আরও কিছু গুরুত্বপূর্ণ ধারণা

  1. Multiple Exceptions Handling: একাধিক ব্যতিক্রম ধরতে একাধিক catch ব্লক ব্যবহার করা যেতে পারে।

    try {
        // কিছু কোড যা ব্যতিক্রম সৃষ্টি করতে পারে
    } catch (IOException ex) {
        // IOException হ্যান্ডলিং
    } catch (SQLException ex) {
        // SQLException হ্যান্ডলিং
    }
    
  2. Finally Block: finally ব্লক সব সময় এক্সিকিউট হয়, এক্সিপশন ঘটুক বা না ঘটুক। এটি রিসোর্স ক্লিনআপ করতে ব্যবহৃত হয়, যেমন ফাইল বন্ধ করা বা ডাটাবেস কানেকশন বন্ধ করা।

    try {
        // কোড যা ব্যতিক্রম সৃষ্টি করতে পারে
    } catch (Exception ex) {
        // ব্যতিক্রম হ্যান্ডলিং
    } finally {
        // কোড যা সবসময় এক্সিকিউট হবে, যেমন রিসোর্স ক্লিনআপ
    }
    
  3. Throwing an Exception: আপনি নিজেও কাস্টম ব্যতিক্রম তৈরি করতে পারেন এবং throw দিয়ে তা ছুড়ে দিতে পারেন।

    if (inputText.isEmpty()) {
        throw new IllegalArgumentException("Input cannot be empty");
    }
    

সারাংশ

Swing অ্যাপ্লিকেশনে Exception Handling খুবই গুরুত্বপূর্ণ, কারণ এটি ব্যবহারকারীর ইনপুট এবং অন্যান্য কার্যক্রমের সময় ত্রুটি রোধ করতে সাহায্য করে। try-catch ব্লক ব্যবহার করে আমরা সহজেই ব্যতিক্রম ধরতে পারি এবং finally ব্লক ব্যবহার করে রিসোর্স ম্যানেজমেন্ট করতে পারি। উপরের উদাহরণে, আমরা দেখেছি কিভাবে NumberFormatException ধরতে হয় এবং ব্যবহারকারীকে একটি ত্রুটি বার্তা প্রদর্শন করতে হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...